package com.mars.algorithm;

import java.util.ArrayList;
import java.util.List;

/**
 * @Author King
 * @create 2020/6/22 14:58
 */
public class AddOfTwoNumbers {

    public static void main(String[] args) {

        List<Integer> l1 = new ArrayList<>();
        l1.add(2);
        l1.add(7);
        l1.add(3);

        List<Integer> l2 = new ArrayList<>();
        l2.add(5);
        l2.add(6);
        l2.add(4);

        List<Integer> r = addTwoNumbers(l1, l2);
        System.out.println("##########################");

    }

    public static List<Integer> addTwoNumbers(List<Integer> l1, List<Integer> l2) {

        int size = 0;
        if (l1.size() > l2.size()) {
            size = l1.size();
        } else if (l1.size() <= l2.size()) {
            size = l2.size();
        }
        List<Integer> result = new ArrayList<>();
        boolean flag = false;
        for (int i = 0; i < size; i++) {

            int tmp = l1.get(i) + l2.get(i);
            if (tmp == 10) {
                if (flag) {
                    result.add(1);
                } else {
                    result.add(0);
                }
                flag = true;
            } else if (tmp > 10 && tmp % 10 != 0) {
                if (flag) {
                    result.add(tmp % 10 + 1);
                } else {
                    result.add(tmp % 10);
                }
                flag = true;
            } else {
                if (flag) {
                    result.add(tmp + 1);
                } else {
                    result.add(tmp);
                }
                flag = false;
            }
        }
        return result;
    }

}
